/*jslint */
/*global Class, Jedi */

/**
 * @class
 * @name Jedi.Column
 * @extends Class
 */
Jedi.Column = Class.$extend({

    /**
     * @private
     * @field
     * @name Jedi.Column#name
     * @see Jedi.Column#getName
     * @type {String|null}
     */
    name : null,

    /**
     * @private
     * @field
     * @name Jedi.Column#column
     * @see Jedi.Column#getColumn
     * @type {String|null}
     */
    column : null,

    /**
     * @private
     * @field
     * @name Jedi.Column#type
     * @see Jedi.Column#getType
     * @type {String|null}
     */
    type : null,

    /**
     * @private
     * @field
     * @name Jedi.Column#title
     * @see Jedi.Column#getTitle
     * @type {String|null}
     */
    title : null,

    /**
     * @private
     * @field
     * @name Jedi.Column#require
     * @see Jedi.Column#isRequire
     * @type {Boolean|null}
     */
    require : null,

    /**
     * @private
     * @field
     * @name Jedi.Column#defaults
     * @see Jedi.Column#getDefaults
     * @type {String|null}
     */
    defaults : null,

    /**
     * @private
     * @field
     * @name Jedi.Column#tooltip
     * @see Jedi.Column#getTooltip
     * @type {String|null}
     */
    tooltip : null,

    /**
     * @public
     * @function
     * @name Jedi.Column#$init
     * @return {void}
     */
    $init : function (name, config) {
        'use strict';
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#getName
     * @see Jedi.Column#name
     * @return {String}
     */
    getName : function () {
        'use strict';
        return this.name;
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#getColumn
     * @see Jedi.Column#column
     * @return {String}
     */
    getColumn : function () {
        'use strict';
        return this.column;
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#getType
     * @see Jedi.Column#type
     * @return {String}
     */
    getType : function () {
        'use strict';
        return this.type;
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#getTitle
     * @see Jedi.Column#title
     * @return {String|null}
     */
    getTitle : function () {
        'use strict';
        return this.title;
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#isRequire
     * @see Jedi.Column#require
     * @return {Boolean}
     */
    isRequire : function () {
        'use strict';
        return !!this.require;
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#isVisible
     * @return {Boolean}
     */
    isVisible : function () {
        'use strict';
        return false;
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#getDefaults
     * @see Jedi.Column#defaults
     * @return {String|null}
     */
    getDefaults : function () {
        'use strict';
        return this.defaults;
    },

    /**
     * @public
     * @function
     * @name Jedi.Column#getTooltip
     * @see Jedi.Column#tooltip
     * @return {String|null}
     */
    getTooltip : function () {
        'use strict';
        return this.tooltip;
    }

});
